// 给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序。

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var sortedSquares = function (nums) {
    const ans /** number[] */ = [];

    let l = 0, r = nums.length - 1, index = nums.length - 1;

    while (l <= r) {
        if (Math.pow(nums[l], 2) > Math.pow(nums[r], 2)) {
            ans[index] = Math.pow(nums[l], 2)
            l++;
        } else {
            ans[index] = Math.pow(nums[r], 2)
            r--;
        }
        index--;
    }

    return ans;
};

module.exports = sortedSquares;